package com.mooer.app;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.mooer.R;
import com.mooer.config.Const;

/**
 * @author pengfei.xu
 * @version 创建时间：2011-6-19 上午10:22:29 类说明
 */
public class NearMore extends Activity {

	private ExpandableListView listView;

	private List<Map<String, Object>> groupData = new ArrayList<Map<String, Object>>();

	private List<List<String>> childData = new ArrayList<List<String>>();

	private NearMoreAdapter adapter;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.near_more);
		listView = (ExpandableListView) findViewById(R.id.listview);
		adapter = new NearMoreAdapter();
		listView.setAdapter(adapter);
		listView.setGroupIndicator(null);
		initGroup();
		initChild();
	}

	private void initGroup() {
		for (int i = 0; i < Const.types.size() - 1; i++) {
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("name", Const.types.get(i));
			groupData.add(map);
		}
	}

	private void initChild() {

		List<String> meishiType = new ArrayList<String>();
		meishiType.add("南京/江浙菜");
		meishiType.add("粤菜");
		meishiType.add("川菜");
		meishiType.add("湘菜");
		meishiType.add("新疆/清真");
		meishiType.add("火锅");
		meishiType.add("小吃快餐");
		meishiType.add("日韩料理");
		meishiType.add("东南亚菜");
		meishiType.add("西餐");
		meishiType.add("自助餐");
		meishiType.add("面包甜点");
		meishiType.add("其他");
		childData.add(meishiType);
		List<String> lirenType = new ArrayList<String>();
		lirenType.add("美发");
		lirenType.add("美容/SPA");
		lirenType.add("新版美甲");
		lirenType.add("化妆品");
		lirenType.add("瘦身纤体");
		lirenType.add("舞蹈");
		lirenType.add("其他");
		childData.add(lirenType);
		List<String> huajiaType = new ArrayList<String>();
		huajiaType.add("婚纱礼服");
		huajiaType.add("婚戒首饰");
		huajiaType.add("婚宴酒店");
		huajiaType.add("婚纱摄影");
		huajiaType.add("婚庆公司");
		huajiaType.add("彩妆造型");
		huajiaType.add("其他");
		childData.add(huajiaType);
		List<String> qinziType = new ArrayList<String>();
		qinziType.add("亲子摄影");
		qinziType.add("亲子游乐");
		qinziType.add("早教/幼儿培训");
		qinziType.add("亲子购物");
		qinziType.add("其他");
		childData.add(qinziType);
		List<String> jianshenType = new ArrayList<String>();
		jianshenType.add("瑜伽");
		jianshenType.add("健身中心");
		jianshenType.add("游泳馆");
		jianshenType.add("乒乓球馆");
		jianshenType.add("羽毛球馆");
		jianshenType.add("篮球场");
		jianshenType.add("网球场");
		jianshenType.add("足球场");
		jianshenType.add("高尔夫场");
		jianshenType.add("保龄球馆");
		jianshenType.add("台球室");
		jianshenType.add("舞蹈");
		jianshenType.add("武术场馆");
		jianshenType.add("体育场馆");
		jianshenType.add("其他");
		childData.add(jianshenType);
		List<String> peixunType = new ArrayList<String>();
		peixunType.add("幼儿");
		peixunType.add("成人");
		peixunType.add("语言");
		peixunType.add("技能");
		peixunType.add("其他");
		childData.add(peixunType);
		List<String> yuleType = new ArrayList<String>();
		yuleType.add("咖啡厅");
		yuleType.add("酒吧");
		yuleType.add("茶馆");
		yuleType.add("KTV");
		yuleType.add("电影院");
		yuleType.add("文化艺术");
		yuleType.add("景点/郊游");
		yuleType.add("公园");
		yuleType.add("足疗按摩");
		yuleType.add("游乐游艺");
		yuleType.add("桌面游戏");
		yuleType.add("台球室");
		yuleType.add("其他");
		childData.add(yuleType);
		List<String> gouwuType = new ArrayList<String>();
		gouwuType.add("综合商场");
		gouwuType.add("食品茶酒");
		gouwuType.add("超市/便利店");
		gouwuType.add("服饰鞋包");
		gouwuType.add("珠宝饰品");
		gouwuType.add("化妆品");
		gouwuType.add("运动户外");
		gouwuType.add("母婴儿童");
		gouwuType.add("数码家电");
		gouwuType.add("家具家居");
		gouwuType.add("特色集市");
		gouwuType.add("书店");
		gouwuType.add("眼镜店");
		gouwuType.add("办公/文化用品");
		gouwuType.add("药店");
		gouwuType.add("鲜花店");
		gouwuType.add("休闲娱乐");
		gouwuType.add("其他");
		childData.add(gouwuType);
		List<String> jiudianType = new ArrayList<String>();
		jiudianType.add("五星级酒店");
		jiudianType.add("四星级酒店");
		jiudianType.add("三星级酒店");
		jiudianType.add("度假村");
		jiudianType.add("公寓式酒店");
		jiudianType.add("经济型酒店");
		jiudianType.add("更多");
		childData.add(jiudianType);
		List<String> serviceType = new ArrayList<String>();
		serviceType.add("室内装潢");
		serviceType.add("居家维修");
		serviceType.add("搬家");
		serviceType.add("旅行社");
		serviceType.add("宠物");
		serviceType.add("齿科");
		serviceType.add("医院");
		serviceType.add("快照/冲印");
		serviceType.add("汽车服务");
		serviceType.add("学校");
		serviceType.add("干洗店");
		serviceType.add("家政");
		serviceType.add("公交车");
		serviceType.add("停车场");
		serviceType.add("银行");
		serviceType.add("加油站");
		serviceType.add("团购网站");
		serviceType.add("小区");
		serviceType.add("商务楼");
		serviceType.add("更多");
		childData.add(serviceType);
	}

	public class NearMoreAdapter extends BaseExpandableListAdapter {

		@Override
		public int getGroupCount() {
			return groupData.size();
		}

		@Override
		public int getChildrenCount(int position) {
			return childData.get(position).size();
		}

		@Override
		public Object getGroup(int position) {
			return groupData.get(position);
		}

		@Override
		public Object getChild(int groupPosition, int childPosition) {

			return childData.get(groupPosition).get(childPosition);
		}

		@Override
		public long getGroupId(int paramInt) {
			return paramInt;
		}

		@Override
		public long getChildId(int paramInt1, int paramInt2) {
			return paramInt2;
		}

		@Override
		public boolean hasStableIds() {
			return true;
		}

		@Override
		public View getGroupView(int position, boolean isExpanded,
				View paramView, ViewGroup paramViewGroup) {
			View groupView = paramView;
			if (groupView == null) {
				groupView = (LinearLayout) LayoutInflater.from(NearMore.this)
						.inflate(R.layout.near_more_item, null);
			}
			ImageView btn = (ImageView) groupView.findViewById(R.id.icon);
			TextView name = (TextView) groupView.findViewById(R.id.name);
			name.setText((String) groupData.get(position).get("name"));
			if (isExpanded) {
				btn.setBackgroundResource(R.drawable.b_pull_down);
			} else {
				btn.setBackgroundResource(R.drawable.b_pull_on);
			}
			return groupView;
		}

		@Override
		public View getChildView(int paramInt1, int paramInt2,
				boolean paramBoolean, View paramView, ViewGroup paramViewGroup) {
			View groupView = paramView;
			if (groupView == null) {
				groupView = (LinearLayout) LayoutInflater.from(NearMore.this)
						.inflate(R.layout.near_more_child_item, null);
			}
			TextView name = (TextView) groupView.findViewById(R.id.name);
			name.setText(childData.get(paramInt1).get(paramInt2));
			return groupView;
		}

		@Override
		public boolean isChildSelectable(int paramInt1, int paramInt2) {
			return true;
		}

	}

}
